<?php
include "application/classes/util/DateUtil.php";

class FormularioDeExperienciaProfissional extends Model{
	/*******************
	 * ATRIBUTOS
	 *******************/
	private $possuiExperiencia;
	private $empresa;
	private $cargo;
	private $periodoInicio;
	private $periodoFinal;
	private $observacao;
	private $experienciaProfissional;
	private $camposPreenchidos;


	/*******************
	 * CONSTRUTOR
	 *******************/

	public function FormularioDeExperienciaProfissional($experienciaProfissional = null){
		$this->possuiExperiencia = "";
		$this->empresa = array();
		$this->cargo = array();
		$this->periodoInicio = array();
		$this->periodoFinal = array();
		$this->observacao = array();
		$this->experienciaProfissional = $experienciaProfissional;
		$this->camposPreenchidos = array();
		if(isset($experienciaProfissional)){
			$this->carregarDadosDoFormulario($experienciaProfissional);
		}
	}

	/*******************
	 * METODOS
	 *******************/

	public function definirCampoPreenchido($nomeDoCampo, $valorDoCampo){
		$this->camposPreenchidos[$nomeDoCampo] = $valorDoCampo;
	}

	public function obterCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return $this->camposPreenchidos[$nomeDoCampo];
		}
		else{
			return "";
		}
	}

	public function isCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return true;
		}
		else{
			return false;
		}
	}

	//Repreencher o formulario em caso de carregamento do formulario, seja pela session ou pelo Banco de Dados
	private function carregarDadosDoFormulario($experienciaProfissional){
		
		$empresas = $experienciaProfissional->getEmpresas();
		$quantidadeDeEmpresas = count($empresas);
		$this->possuiExperiencia = $experienciaProfissional->getPossuiExperiencia();
		
		if($this->possuiExperiencia != null || $this->possuiExperiencia != ""){
			$this->definirCampoPreenchido("possueExperiencia", $this->possuiExperiencia);
		}
		
		$nomeDaEmpresa = "";
		$cargo = "";
		$observacao = "";
		$periodoMesInicio = "";
		$periodoAnoInicio = "";
		$periodoMesFim = "";
		$periodoAnoFim = "";
		$periodoInicio = "";
		$periodoFinal = "";
		$indiceEmpresa = 0;
		
				
		for($indiceEmpresa = 0; $indiceEmpresa < $quantidadeDeEmpresas; $indiceEmpresa++){			
			$empresa = $empresas[$indiceEmpresa];
			$nomeDaEmpresa = $empresa->getNomeEmpresa();
			$cargo = $empresa->getCargo();
			$observacao = $empresa->getObservacao();
			$periodoInicio = $empresa->getPeriodoInicio();
			$periodoFinal = $empresa->getPeriodoFinal();

			$periodoMesInicio = DateUtil::obterMesDeData($periodoInicio);
			$periodoAnoInicio = DateUtil::obterAnoDeData($periodoInicio);
			$periodoMesFim = DateUtil::obterMesDeData($periodoFinal);
			$periodoAnoFim = DateUtil::obterAnoDeData($periodoFinal);

			if($nomeDaEmpresa != null || $nomeDaEmpresa != ""){
				$this->definirCampoPreenchido("empresa".$indiceEmpresa, $nomeDaEmpresa);
			}
			if($cargo != null || $cargo != ""){
				$this->definirCampoPreenchido("cargo".$indiceEmpresa, $cargo);
			}
			if($observacao != null || $observacao != ""){
				$this->definirCampoPreenchido("observacao".$indiceEmpresa, $observacao);
			}
			if($periodoMesInicio != null || $periodoMesInicio != ""){
				$this->definirCampoPreenchido("periodo".$indiceEmpresa."MesInicio", $periodoMesInicio);
			}
			if($periodoAnoInicio != null || $periodoAnoInicio != ""){
				$this->definirCampoPreenchido("periodo".$indiceEmpresa."AnoInicio", $periodoAnoInicio);
			}
			if($periodoMesFim != null || $periodoMesFim != ""){
				$this->definirCampoPreenchido("periodo".$indiceEmpresa."MesFim", $periodoMesFim);
			}
			if($periodoAnoFim != null || $periodoAnoFim != ""){
				$this->definirCampoPreenchido("periodo".$indiceEmpresa."AnoFim", $periodoAnoFim);
			}
			
			$nomeDaEmpresa = "";
			$cargo = "";
			$observacao = "";
			$periodoMesInicio = "";
			$periodoAnoInicio = "";
			$periodoMesFim = "";
			$periodoAnoFim = "";
			$periodoInicio = "";
			$periodoFinal = "";
		}
	}

	//Tentativa de definir os campos já preenchidos pelo usuário em caso de erro ou qualquer outra necessidade
	public function recarregarDadosDoFormulario(){
		$empresa = array();
		$cargo = array();
		$observacao = array();
		$periodoMesInicio = "";
		$periodoAnoInicio = "";
		$periodoMesFim = "";
		$periodoAnoFim = "";
		$indiceEmpresa = 0;

		if(isset($_POST["possueExperiencia"])){
			$this->possuiExperiencia = $_POST["possueExperiencia"];
		}

		if($this->possuiExperiencia != null && $this->possuiExperiencia != ""){
			$this->definirCampoPreenchido("possueExperiencia", $this->possuiExperiencia);
		}


		

		while(isset($_POST["empresa".$indiceEmpresa]) ||
			isset($_POST["cargo" . $indiceEmpresa]) ||
			isset($_POST["observacao" . $indiceEmpresa]) ||
			isset($_POST["periodo" . $indiceEmpresa . "MesInicio"]) ||
			isset($_POST["periodo" . $indiceEmpresa . "AnoInicio"]) ||
			isset($_POST["periodo" . $indiceEmpresa . "MesFim"]) ||
			isset($_POST["periodo" . $indiceEmpresa . "AnoFim"]) ||
			isset($_POST["periodo" . $indiceEmpresa . "AnoInicio"])
		){

			$empresa = $_POST["empresa".$indiceEmpresa];
			$cargo = $_POST["cargo" . $indiceEmpresa];
			$observacao = $_POST["observacao" . $indiceEmpresa];
			if(isset($_POST["periodo" . $indiceEmpresa . "MesInicio"])){
				$periodoMesInicio = $_POST["periodo" . $indiceEmpresa . "MesInicio"];
			}
			if(isset($_POST["periodo" . $indiceEmpresa . "AnoInicio"])){
				$periodoAnoInicio = $_POST["periodo" . $indiceEmpresa . "AnoInicio"];
			}
			if(isset($_POST["periodo" . $indiceEmpresa . "MesFim"])){
				$periodoMesFim = $_POST["periodo" . $indiceEmpresa . "MesFim"];
			}
			if(isset($_POST["periodo" . $indiceEmpresa . "AnoFim"])){
				$periodoAnoFim = $_POST["periodo" . $indiceEmpresa . "AnoFim"];
			}


			if($empresa != null && $empresa != "" ){
				$this->definirCampoPreenchido("empresa".$indiceEmpresa, $empresa);
			}

			if($cargo != null && $cargo != ""){
				$this->definirCampoPreenchido("cargo" . $indiceEmpresa, $cargo);
			}

			if($periodoMesInicio != null && $periodoMesInicio != "" ){
				$this->definirCampoPreenchido("periodo" . $indiceEmpresa . "MesInicio", $periodoMesInicio);
			}

			if($periodoAnoInicio != null && $periodoAnoInicio != "" ){
				$this->definirCampoPreenchido("periodo" . $indiceEmpresa . "AnoInicio", $periodoAnoInicio);
			}

			if($periodoMesFim != null && $periodoMesFim != "" ){
				$this->definirCampoPreenchido("periodo" . $indiceEmpresa . "MesFim", $periodoMesFim);
			}

			if($periodoAnoFim != null && $periodoAnoFim != "" ){
				$this->definirCampoPreenchido("periodo" . $indiceEmpresa . "AnoFim", $periodoAnoFim);
			}
				
			if($observacao != null && $observacao != ""){
				$this->definirCampoPreenchido("observacao" . $indiceEmpresa, $observacao);
			}

			$empresa = "";
			$cargo = "";
			$observacao = "";
			$periodoMesInicio = "";
			$periodoAnoInicio = "";
			$periodoMesFim = "";
			$periodoAnoFim = "";
			$indiceEmpresa = $indiceEmpresa + 1;
		}

	}

}
?>